La tâche de l'itérateur est de fournir aux exécuteurs les données nécessaires aux calculs pour chacune des itérations sur les mini-batch.
Les itérateurs pré-définis sont:
- mx.io.arrayiter: itérateur prenant un objet array comme entrée
- mx.io.CSVIter: lecture d'un CSV
- mx.io.ImageRecordIter: lecture d'images en format binaire
Des itérateurs personnalisés peuvent être construits directement en R, leur performance dépend des fonctionnalités sous-jacentes.
À noter que l'utilisation d'itérateurs sur des CSV ou images permet d'éviter la contrainte de charger la totalité des données en mémoire.
MXNet fonctionne par défaut avec des données orientées par colonnes (chaque observation se trouve dans une colonne différente).
train_iter<- mx.io.arrayiter(data = t(train_x), label = train_y, batch.size = 16, shuffle = T)
eval_iter<- mx.io.arrayiter(data = t(eval_x), label = eval_y, batch.size = 16, shuffle = F)